Non-volatile memory express (NVMe) is a logical device interface specification for non-volatile storage media, such as solid-state drives (SSDs), attached via the peripheral component interconnect express (PCIe) standard. NVMe technologies leverage the speed of non-volatile memory devices, such as SSDs, with the high-bandwidth bus communications supported by PCIe, to provide significant improvements in storage performance, capacity, and reliability. Not surprisingly, NVMe technologies have been implemented with increasing regularity in server and datacenter environments, to meet the higher performance demands in these deployments.
Large deployments may include numerous NVMe drives for added capabilities. Each NVMe drive is typically assigned to a specific processor which manages and monitors that NVMe drive. A processor can be assigned to multiple NVMe drives, to manage and monitor those NVMe drives. To connect a processor with multiple NVMe drives, input/output expander chips are generally implemented, with each expander chip connecting an NVMe drive to a particular processor. Each NVMe drive assigned to a processor requires a respective input/output expander chip to connect to that processor, and each NVMe drive added requires an additional input/output expander chip. Accordingly, large deployments with numerous NVMe drives require a large number of input/output expander chips to connect the NVMe drives with respective processors. As a result, the current solutions are costly, inflexible, and cumbersome.